/*
 * Equipe: Menandro Dias E. Neto
 *         Thiago Torres
 *         Ubirajara Gabriela
 */

package com.mapdelivery.model;

import com.mapdelivery.beans.MapDeliveryBean;
import com.mapdelivery.beans.FormaPagamento;
import com.mapdelivery.model.dao.DAOFormaPagamento;
import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author menandro.neto
 */
public class ModelFormaPagamento implements ModelProxy {

    private ArrayList<MapDeliveryBean> formasPagamento;
    private DAOFormaPagamento daoFormaPagamento;

    public ModelFormaPagamento() {
        this.formasPagamento = new ArrayList<MapDeliveryBean>();
        this.daoFormaPagamento = new DAOFormaPagamento();
    }

    public Integer count(){
        return this.formasPagamento.size();
    }

    public void virtualDataProducer(){
        this.makeTestData();
    }

    /**
     *
     * @return Sucess when deleted
     */
    public Boolean delete(Integer pos) {
        FormaPagamento bean = (FormaPagamento) this.formasPagamento.get(pos);
        this.daoFormaPagamento.delete( bean.getFormaPagamentoId() );
        return this.formasPagamento.remove(pos);
    }

    /**
     *
     * @return Sucess when inserted
     */
    public Boolean insert(MapDeliveryBean item) {
        this.daoFormaPagamento.insert(item);
        return this.formasPagamento.add( (FormaPagamento) item);
    }

    /**
     *
     * @return Sucess when updated
     */
    public Boolean update(Integer pos, MapDeliveryBean item) {
        Boolean ret;
        ret = ( pos.intValue() < 0 || pos.intValue() >= this.formasPagamento.size() );
        if (ret)
                this.formasPagamento.set(pos.intValue(), (FormaPagamento) item);

        FormaPagamento bean = (FormaPagamento) this.formasPagamento.get(pos);
        this.daoFormaPagamento.update(bean.getFormaPagamentoId(), item);

        return ret;
    }

    /**
     *
     * @return ArrayList<MapDeliveryBean>
     */
    public ArrayList<MapDeliveryBean> list() {
        this.formasPagamento.removeAll(this.formasPagamento);
        this.formasPagamento = this.daoFormaPagamento.findAll();
        return( this.formasPagamento );
    }

    private void makeTestData(){
        this.formasPagamento = this.daoFormaPagamento.findAll();
        /*
        int i = 1;
        FormaPagamento test;
        for (i = this.count(); i < 15; i++) {
            test = new FormaPagamento();

            test.setFormaPagamentoId(i + 1);
            test.setFpDescricao( "Forma de Pagamento ".concat( String.valueOf(i) ) );
            
            this.insert(test);
        }
        */
    }
}
